#ifndef SNAKE_ROOM_H
#define SNAKE_ROOM_H

#include <QWidget>
#include <QSound>
//蛇的基本方向
enum Snake_Direction
{
    UP=0,
    DOWN,
    LEFT,
    RIGHT
};

class Snake_room : public QWidget
{
    Q_OBJECT
public:
    explicit Snake_room(QWidget *parent = nullptr);
    //重写paintEvent事件
    void paintEvent(QPaintEvent *event);
    //蛇移动，这里实现的移动时会让蛇变长
    void moveUp();      //向上移动
    void moveDown();    //向下移动
    void moveLeft();    //向左移动
    void moveRight();   //向右移动
    void moveSpeed(int speed); //设置蛇移动速度
    //初始化食物
    void CreatFood();
    //写入新战绩
    void NewHistory();
private:

    QList<QRect> snake_list;    //用链表表蛇
    int snake_width=20;     //蛇每个节点的宽度
    int snake_hight=20;     //蛇每个节点的高度
    int snake_speed=200;    //蛇的移动速度
    Snake_Direction snake_dirt=Snake_Direction::UP; //默认蛇的初始状态下蛇头向上

    int scorce=3;       //得分
    QRect point_food;   //食物位置
    QTimer* timer;      //定时器

    bool IsStart=false; //判断游戏是否开始
    bool ChackFail();   //判断游戏是否失败
    QSound* sound;
};

#endif // SNAKE_ROOM_H
